Systems and methods for displaying objects on a screen at a desired visual angle

ABSTRACT

A server in communication with a first device capable of receiving input from a camera attached to the first device, and a second device capable of displaying output, is provided. The server is configured to receive, from the first device, data relating to characteristics of the camera and characteristics of an image obtained by the camera of a screen of the second device; determine a screen pixel length of the screen; and provide instructions to the second device to display on the screen an object at a desired visual angle in response to the data received from the second device and the screen pixel length, while the first device is positioned at an arbitrary distance from the screen.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit under 35 U.S.C. § 120 as acontinuation of U.S. patent application Ser. No. 14/867,677 filed onSep. 28, 2015, titled “SYSTEMS AND METHODS FOR DISPLAYING OBJECTS ON ASCREEN AT A DESIRED VISUAL ANGLE, which claims the benefit under 35U.S.C. § 120 as a continuation-in-part of U.S. patent application Ser.No. 14/825,342 filed on Aug. 13, 2015, titled “SYSTEMS AND METHODS FORDISPLAYING OBJECTS ON A SCREEN AT A DESIRED VISUAL ANGLE,” the entiredisclosures of which are hereby incorporated herein by reference intheir entirety for all purposes.

BACKGROUND

Technical Field

The technical field generally relates to displaying objects on a screenat a desired visual angle, and more particularly, in one aspect, tosystems and methods for displaying optotypes during an eye examination.

Background Discussion

Eye examinations are routinely used to determine the appropriate lensprescription or make other diagnoses for patients. Eye exams havetraditionally been performed by optometrists or the like in an officewhere the test subject is positioned at a set distance from an eye chartdisplaying optotypes of a known size. The test administrator is able tocalculate the perceived size of the optotypes from the perspective ofthe test subject, and draw conclusions regarding the subject's visionaccording to the test results. Efforts to translate eye exam proceduresfrom a doctor or technician's office to non-traditional locations suchas self-administered tests at home are hampered by the difficultiesassociated with ascertaining the perceived size of the characters usedin the test. Previously proposed solutions such as using measuring tapeor counting steps to determine a distance from a computer screendisplaying an eye test require additional equipment or steps and mayerode a user's confidence in the results, making a test administered outof office less attractive.

SUMMARY

According to one aspect, a server in communication with a first devicecapable of receiving input from a camera attached to the first device,and a second device capable of displaying output, is provided. Theserver is configured to receive, from the first device, data relating tocharacteristics of the camera and characteristics of an image obtainedby the camera of a screen of the second device; determine a screen pixellength of the screen; and provide instructions to the second device todisplay on the screen an object at a desired visual angle in response tothe data received from the second device and the screen pixel length,while the first device is positioned at an arbitrary distance from thescreen.

According to one embodiment, the server is further configured to pairthe first device to the second device. According to another embodiment,the server is further configured to receive from the second device anindication of the screen pixel length of the screen.

According to yet another embodiment, the data associated withcharacteristics of the camera comprise a focal length and a sensor sizeof the camera. According to a further embodiment, the data associatedwith characteristics of the image of the screen include a camera pixelheight of the image and a camera pixel height of the screen within theimage. According to a still further embodiment, the server is furtherconfigured to determine a visual angle of the screen prior to providinginstructions to the second device to display the object.

According to one embodiment, the displayed object is an optotype, andthe server is further configured to receive an indication from eitherthe first device or the second device from a test subject proximate tothe first device in response to the displayed optotype. According to afurther embodiment, the server is further configured to determine, basedat least in part on the indication provided by the test subject inresponse to the displayed optotype, at least one of a diagnosis for thetest subject, a lens prescription for the test subject, and informationto be provided to a doctor to determine a diagnosis or a lensprescription for the test subject.

According to another aspect, a process for conducting a vision testincludes obtaining an image of a screen using a camera of a mobiledevice; determining a camera pixel length of the screen in the image;determining a desired screen pixel dimension of an object to bedisplayed on the screen to produce a desired visual angle for theobject; and causing the object to be displayed on the screen at thedesired visual angle.

According to one embodiment, the object is an optotype, the methodfurther including receiving an indication from a test subject inresponse to the optotype. According to a further embodiment, the processincludes determining at least one characteristic of the test subject'svision based at least in part on the received indication. According to astill further embodiment, the at least one characteristic is at leastone of a diagnosis and a lens prescription for the test subject.According to a further embodiment, the process includes transmittingfrom the mobile device to a server the indication from the test subjectin response to the optotype.

According to another embodiment, obtaining the image of the screenoccurs at an arbitrary distance from the screen.

According to one embodiment, the process includes pairing the mobiledevice with a computer associated with the screen. According to afurther embodiment, the process includes transmitting data from themobile device to a server, the data representing at least onecharacteristic of the camera of the mobile device and at least onecharacteristic of the image of the screen of the computer.

According to another embodiment, the at least one characteristic of theimage of the screen of the computer includes a first camera pixeldimension of the image and a second camera pixel dimension of the screenwithin the image.

According to yet another aspect, a process of operating a mobile deviceincludes obtaining an image of a computer screen using a camera of themobile device; determining a camera pixel length of the computer screenin the image; determining a desired screen pixel length of an object tobe displayed on the computer screen to produce a desired visual anglefor the object; and receiving an indication from a test subject inresponse to the object displayed on the computer screen.

According to one embodiment, the process includes pairing the mobiledevice with the computer associated with the computer screen. Accordingto another embodiment, the process includes determining at least onecharacteristic of the user's vision based at least in part on thereceived indication.

Still other aspects, embodiments, and advantages of these exemplaryaspects and embodiments, are discussed in detail below. Moreover, it isto be understood that both the foregoing information and the followingdetailed description are merely illustrative examples of various aspectsand embodiments, and are intended to provide an overview or frameworkfor understanding the nature and character of the claimed subjectmatter. Particular references to examples and embodiments, such as “anembodiment,” “an example,” “one example,” “another embodiment,” “anotherexample,” “some embodiments,” “some examples,” “other embodiments,” “analternate embodiment,” “various embodiments,” “one embodiment,” “atleast one embodiments,” “this and other embodiments” or the like, arenot necessarily mutually exclusive and are intended to indicate that aparticular feature, structure, or characteristic described in connectionwith the embodiment or example and may be included in that embodiment orexample and other embodiments or examples. The appearances of such termsherein are not necessarily all referring to the same embodiment orexample.

Furthermore, in the event of inconsistent usages of terms between thisdocument and documents incorporated herein by reference, the term usagein the incorporated references is supplementary to that of thisdocument; for irreconcilable inconsistencies, the term usage in thisdocument controls. In addition, the accompanying drawings are includedto provide illustration and a further understanding of the variousaspects and embodiments, and are incorporated in and constitute a partof this specification. The drawings, together with the remainder of thespecification, serve to explain principles and operations of thedescribed and claimed aspects and embodiments.

BRIEF DESCRIPTION OF DRAWINGS

Various aspects of at least one embodiment are discussed below withreference to the accompanying figures, which are not intended to bedrawn to scale. The figures are included to provide an illustration anda further understanding of the various aspects and embodiments, and areincorporated in and constitute a part of this specification, but are notintended as a definition of the limits of any particular embodiment. Thedrawings, together with the remainder of the specification, serve toexplain principles and operations of the described and claimed aspectsand embodiments. In the figures, each identical or nearly identicalcomponent that is illustrated in various figures is represented by alike numeral. For purposes of clarity, not every component may belabeled in every figure. In the figures:

FIG. 1 is a block diagram of a system according to one or moreembodiments;

FIG. 2 is a flow chart of a process according to one or moreembodiments;

FIG. 3 is a diagram of variables used in performing a process accordingto one or more embodiments;

FIGS. 4A and 4B are illustrations of a user interface during a devicepairing step according to one or more embodiments;

FIGS. 5A, 5B, and 5C are illustrations of user interfaces during aprocess step according to one or more embodiments; and

FIGS. 6A and 6B are illustrations of a user interface during a processstep according to one or more embodiments.

DETAILED DESCRIPTION

According to one or more embodiments, the methods and systems disclosedprovide for the display of objects on a screen so that they areperceived at a desired visual angle by a user positioned at an arbitrarydistance from the screen. A visual angle may be understood as the anglealong a given plane occupied by an object in a viewer's field of sight.For example, a second object twice as big but also twice as distant froma viewer as a first object will have about the same visual angle as thefirst object.

According to one or more embodiments, the methods and systems disclosedallow for performing a web-based process that uses a camera on a mobiledevice, such as a smartphone, tablet, etc., in communication with acomputer screen, such as one for a desktop computer, a laptop computer,a tablet, etc., to present an object at a desired visual angle in, forexample, units of arcminutes on the computer screen, regardless of theexact distance the user is from the screen. According to oneapplication, this method allows the user to perform an eye examinationwithout calibrating the screen to determine the physical size of objectsdisplayed on it, and without requiring the subject be at a particulardistance from the screen. While the term “camera” is used throughout thespecification, it should be understood that other light sensors capableof performing analogous functions are also understood to be within thescope of the disclosed invention

Conventionally, when determining visual acuity during a typical eyeexamination, the distance the subject is from the test is used todetermine the physical size of the optotypes presented so as to achievea desired visual angle for the displayed objects, i.e., the desiredangle at which the object is to be perceived. For example, at 3 meters,a person with 20/20 vision can read a standard “E” that is 4.36 mm tallon a Snellen chart, while at 6 meters, that letter at 8.73 mm tall wouldappear to be the same size, and would also be legible to a person with20/20 vision. The two letters look the same because the angle at whichthey hit the eye is the same. This angle may be referred to as thevisual angle. Because of this, visual acuity is often described usingthe “minimum angle of resolution” (MAR). For example, a person with20/20 vision has an MAR of 1 minute of arc, or 1/60 of a degree.

In at least some embodiments directed to performing an eye examination,the desired visual angle of an optotype can be displayed without needingto know either the exact distance of the test subject to the screen orthe physical letter size displayed on the screen for the examination.The subject, or user, may instead stand at an arbitrary distance, i.e.,a distance within a range in which the performed method can be carriedout successfully for a given camera pixel resolution or the requirementsof the particular application, e.g., eye examination, but a distancethat need not be pre-determined or exact. Also, the exact physicalheight of the displayed objects on the screen does not need to be knownin units of physical length such as centimeters or inches. Byeliminating the need for these two conventional requirements, theprocess for displaying objects is simplified and the reliability of theresults is increased.

According to one or more embodiments, the methods provided mayfacilitate a user to undergo an eye examination without the need fortechnical or trained personnel to administer the test. As such, thisdisclosure opens up the potential for a range of people to receive anaccurate eye examination who may have difficulty accessing an optician'soffice (those that are infirm, remote, etc.), or those who may preferthe convenience of self-administering an examination.

According to one or more embodiments, the disclosed methods and systemsare implemented using a camera capable of running custom software and,according to some examples, displaying feedback to the user (such as maybe provided by a smartphone or other mobile or portable device, such asa tablet or laptop computer). According to one or more embodiments, themethods provided can be run on most consumer mobile devices or anyportable computing device that includes a camera.

The mobile device can be paired, or linked, to a web page or applicationrunning on a computer such that the mobile device can be used to controlthe application on the computer. This can be helpful for guiding theuser through the object display process and also for guiding the userthrough an eye examination.

Turning to the figures, FIG. 1 illustrates a block diagram of a system100 according to one or more embodiments. In the embodiment shown inFIG. 1, the system 100 comprises a server 110 in communication with afirst device 120 and a second device 130. As shown, the first device 120is coupled to, and can exchange data with the server 110 and thecomputing device 130 via the network 190. In addition, according to thisexample, the first device 120 includes a camera 145, a processor 150coupled to the camera, an output device 155, such as a monitor ordisplay screen or audio speaker, an input device 160, such as a touchsurface, a keyboard, microphone, or a mouse, a data storage module 167,and a memory 165 coupled to the processor 150. The first device 120 alsoincludes eye examination software 168.

The server 110 includes one or more computing devices located remote orlocal to the first and second devices 120 and 130. The server includes aprocessor 140 and a memory 142 coupled to the processor. In one example,the memory 142 includes volatile memory, such as RAM, and non-volatilememory, such as a magnetic disk.

The second device 130 is coupled to, and can exchange data with, theserver 110 and the mobile device 120 via the network 190. In addition,according to this example, the second device 130 includes the processor175, a data storage module 177, a memory 185 coupled to the processor175, an output device 170, such as a monitor or display screen or audiospeaker, and an input device 180, such as a touch surface, a keyboard,microphone, or a mouse.

The first device 120 is a portable computing device. For example, it maybe a mobile device, such as a smart phone, tablet, or laptop computer,all of which are encompassed by the terms “portable computing device” or“mobile device.” The mobile device 120 is capable of delivering and/orreceiving data to or from server 110. The second device 130 may be aportable computing device, like any of those described for the firstdevice 120, or a stationary computing device. Unless specifiedotherwise, the terms “monitor” or “screen” may be understood toencompass any visual display associated with a portable or stationarycomputing device.

The server 110 exchanges data with the first and second devices 120 and130. This data may be exchanged through an installed program in thefirst or second device 120 or 130, or through a web page loaded on thefirst or second device 120 or 130.

In use, the first and second devices 120 and 130 may be used inconjunction to display objects at a desired visual angle. The outputdisplay 170 of the second device 130 may be used to display any requiredpattern, a substantially blank screen, and/or eye examination material.The images displayed on the monitor 170 may be provided to the monitor170 by the server 110 in response to instructions received from theserver 110, and the particular instructions provided to the monitor 170may be based on information received from the camera device 120. Apairing of the first and second devices 120 and 130, as furtherdiscussed below, may facilitate their coordination.

The computing device 130, as shown in FIG. 1, is internet-enabled andthe various patterns, images, or testing material displayed is providedthrough a web-page, in response to output from the first device 120. Inalternative embodiments, an application or program running on thecomputer 130 is responsible for the content displayed.

While in the system 100 shown in FIG. 1 both the first device 120 andthe second device 130 are in communication with the server 110,alternative configurations are also considered within the scope of thepresent disclosure. For example, according to certain embodiments thedevice 120 including the camera 145 and/or the second device 130 may notbe in communication with a server 110 or each other. For example, allthe instructions required by the camera device 120 may already be storedon the device 120. Likewise, information or instructions for what todisplay on the second device 130 may be provided without requiringcommunication over a network. Also, the second device 130 may be indirect communication with the first device 120 using one of a number ofknown wireless protocols.

According to one or more embodiments, a system like that shown in FIG. 1is implemented in processes directed to displaying objects at a desiredvisual angle from the perspective of the user. These objects may be usedin a variety of applications, including a self-administered eyeexamination. In the context of an eye examination, the desired visualangle is determined according to the requirements of the test and thevisual angle of the optotypes presented may be pre-determined accordingto a pre-set routine or determined dynamically in response to feedbackfrom a test subject over the course of the examination. For example, ifa test subject indicates that he/she cannot perceive an object presentedat one visual angle, the system may account for that response and followby presenting an optotype at a larger visual angle. The objectspresented may be static (unmoving) or dynamic (moving and/or changing).

FIG. 2 is a flow chart of a process 200 for displaying objects on ascreen 170 at a desired visual angle for a user positioned proximate to,including holding, the mobile device 120. These objects may optionallycomprise optotypes and be used in determining a diagnosis or lensprescription according to one or more embodiments. One or moreembodiments of the process 200 may be implemented using a system likethat shown in FIG. 1. While several steps are shown in FIG. 2 it is tobe understood that some of these steps are optional, and theimplementation of a process without these optional steps is stillconsidered within the scope of the presently disclosed invention.

A first step 210 of the process 200 includes pairing the camera of theportable device 120 with the computer 130. The step of pairingfacilitates the coordination of instructions and information between theportable device 120 and the computer 130. Once paired, the server 110may deliver instructions to the computer 130 directing what images aredisplayed on its monitor 170 in response to information received fromthe camera 145 of the device 120. The step of pairing may be achieved byany technique known to one of ordinary skill in the art that will allowthe server 110 to associate the portable device 120 with the computer130. For example, an identifier may be displayed on the monitor 170 ofcomputer 130 and captured by the camera of device 120 or vice versa. Insome embodiments a QR code is displayed on the monitor 170. The camerathen captures an image of the code and transmits it to the server 110,allowing the server 110 to match the two devices 120 and 130 andcoordinate the instructions sent to each.

FIGS. 4A and 4B illustrate user interfaces during a device pairing stepaccording to one or more embodiments. In FIG. 4A the monitor 170 of thecomputer 130 displays a QR code 510. In FIG. 4B the output display 155of the camera 145 displays the monitor 170 with the QR code 510. Thecode 510 is positioned within the target box 530 of the output display155. The code is identified and the two devices 120 and 130 are pairedso that output and input between the two devices 120 and 130 may becoordinated. In one embodiment, the QR code may be generated by theserver 110 and provided to the device 130, while in other embodiments,the device 130 may generate the QR code and provide it to the server110. In other embodiments, images other than QR codes may be used topair the devices, and other identifiers may also be used. For example, astring of letters and or numbers can be displayed on one of devices 120and 130, and entered in the other of the devices 120 and 130 to pair thedevices.

Step 220 of the process 200 includes obtaining camera characteristicsfor calculations conducted in later steps in the process. According tocertain embodiments, these camera characteristics include the focallength of the camera and the physical size of the sensor. According tosome embodiments, any process for calibrating a camera 145 known to aperson of ordinary skill in the art may be utilized to obtain theseparameters. In other embodiments, the characteristics of the camera 145may be known, for example, based on the model of the mobile device 120used, and calibration of the camera 145 may not be necessary. Parametersof the camera used in performing the disclosed methods, such as focallength and physical size of the sensor (or the value of their ratio),may be obtained directly from the camera or may be retrieved, such asfrom a database. Alternatively, these parameters may be determinedthrough an optional calibration process, like that described in U.S.patent application Ser. No. 14/732,435, titled, “SYSTEM AND METHOD FORDETERMINING DISTANCES FROM AN OBJECT,” and incorporated herein byreference in its entirety and for all purposes.

Step 230 of the process 200 includes obtaining an image of a displayscreen 170 of the computer 130 using the camera 145 of the portabledevice 120. This image may be obtained by positioning the device 120 sothat the screen 170 is within its output display 155.

Step 230 is illustrated in FIGS. 5A, 5B, and 5C. FIG. 5A illustrates amonitor screen 170, which is paired with the camera device 120,displaying a white image 810 (to aid in contrasting with thebackground). FIG. 5B illustrates a display 155 on the camera device 120,within which the screen 170 is displayed. In an alternative embodiment,a target 830 is defined within the screen 170. The target 830 may be anyshape or pattern that aids in distinguishing itself from the surroundingenvironment so that the target area may be more easily detected. In FIG.5C the target 830 is defined by a black box with a white interior.

Step 240 of the process 200 includes determining a camera pixel lengthof the screen 170 that was captured in the camera image. Preferably, thescreen contrasts with the background to facilitate this step 240, asshown in FIGS. 5A, 5B, and 5C. The image is processed to determine thelength of one or more dimensions of the screen in units of camerapixels. Referring to FIG. 3, the length of the screen 170 in camerapixels is shown as D. This length may be referred to as camera pixellength or image pixel length. In this context, the use of the term“screen” may be understood to include the entire screen or a designatedportion of the screen, such as the target portion 830, shown in FIG. 5C,for example, unless stated otherwise.

Having determined the camera pixel length of the screen 170, on whichthe object is to be displayed, the following two steps 250 and 260together determine the screen pixel size, X, of the object 310 necessaryfor it to appear at a desired visual angle, β, to a user.

Step 250 includes determining the visual angle of the screen 170 fromthe perspective of a user near the mobile device 120. Referring to FIG.3, the angle of the entire field of view of the image is a function ofthe ratio of the size of the camera sensor, S, and the focal length,F—the larger the sensor, S, the wider the camera angle. The visual angleof the screen 170 (referred to in FIG. 3 as θ) can be understood as afraction of the angle of the entire field of view. Referring to FIG. 3,H is the camera pixel height of the entire image, while D, determined instep 240, is the camera pixel height of the screen 170. The ratio of Dto H and the ratio of S to F can together be used to relate these valuesto a visual angle, θ, of the screen, according to the formula shown inEquation (1):

$\begin{matrix}{\theta = {2*{\tan^{- 1}( \frac{D*S}{2*H*F} )}}} & (1)\end{matrix}$

Once D is determined through step 240, all of the variables necessary todetermine the visual angle, θ, of the computer screen 170 are known. Theimage has a known height, H (again in units of camera pixels). Likewise,the physical sizes of the sensor, S, and the focal length, F, or atleast their relevant ratio of S to F, are known, as discussed above withreference to step 220.

Step 260 of the process 200 includes determining a screen pixel lengthfor the object 310 that is to be displayed on the screen 170, a valuereferred to in FIG. 3 as X. This value may be determined in units ofscreen pixels (screen pixel length). An object having this length willappear at the desired visual angle to a user. This step is understood toinclude determining the screen pixel length of the various components ofthe object, so that the components of the object are re-sizedproportionally, and the resulting object maintains its correct shape. Xis a function of the known values, according to the formula shown inEquation (2):

$\begin{matrix}{X = {D^{\prime}*\frac{\tan( \frac{\beta}{2} )}{\tan( \frac{\theta}{2} )}}} & (2)\end{matrix}$

Wherein:

D′ is the length of the screen in units of screen pixels, a value whichcan be obtained directly from the computer 130;

Θ is the visual angle of the computer screen 170; and

β is the desired visual angle for the object 310, which if it is anoptotype in an eye examination, is determined according to therequirements of the eye examination.

Alternatively, where the distance from the screen is very large comparedto the height of the object to be displayed, the ratio of the visualangle, β, of the object 310 to the visual angle, Θ, of the screen 170 isapproximately proportional to the ratio of the height of the object 310,X, to the height of the screen 170, D′. Therefore, the object displayheight, X, can be approximated according to the formula shown inEquation (3):

$\begin{matrix}{X = {D^{\prime}*( \frac{\beta}{\theta} )}} & (3)\end{matrix}$

Once the value for X is determined, it can then be inserted into acommand to produce on the screen an object having the desired screenpixel length. At step 270 of process 200, the object, or series ofobjects, are displayed at the pixel length, X, determined at step 260,so that the visual angle of a user approximates the desired visualangle, β. As a result of the steps of the process 200 discussed up tothis point, the goal of producing objects that appear at a desired sizefrom the perspective of a user equipped with mobile device 120 has beenachieved. While the above description shows one manner of obtaining thevalue of the screen pixel length, X, of the displayed object 310, it isunderstood that an alternative order of steps or truncation of steps maybe taken, as well as alternative approximations be used, without fallingoutside the scope of the invention. For example, embodiments in whichthe value for X is derived without separately solving for θ are stillconsidered within the scope of the invention.

According to embodiments in which the displayed objects are optotypes orother eye examination material, step 270 may be part of a visionexamination. A variety of different eye tests may be implemented in step270, depending on the needs of the user. Tests may include: tests ofvisual acuity; both cylindrical power and spherical power tests; testsfor peripheral vision or color blindness; tests for astigmatism,cataracts and various pathologies or diseases, etc. Tests may be staticor dynamic. Specific examples of testing material include, withoutlimitation: Snellen charts; E charts; Landoldt C charts, etc.

FIGS. 6A and 6B are illustrations of an eye examination, according toone or more embodiments. In FIG. 6A, monitor 170, which is paired withthe camera device 120, displays an eye chart 910 in which each of thecharacters is sized to provide a desired user visual angle. FIG. 6Billustrates a display 155 on the camera device 120.

During testing, at step 280 of process 200 indications are received fromthe user in response to the displayed eye exam material. The indicationsmay be in the form of vocal or typed responses or any suitable input.The indications may be in response to a prompt provided to the user byone or both of devices 120 and 130. The prompt may include text on oneof the screens and/or an audio prompt. The prompt may display or state acommand such as “read the second line of characters on the eye chart.”

The process 200 may include a step 290 of determining a diagnosis orprescription based on the test subject's indications, or responses. Thedetermination may be conducted automatically by one of the devices 120and 130 or by the server. The determination may also be done by anoptometrist that receives results of the test from the server 110, forexample, over the Internet.

As discussed above, aspects and functions disclosed herein may beimplemented as hardware or software on one or more of these computersystems. There are many examples of computer systems that are currentlyin use. These examples include, among others, network appliances,personal computers, workstations, mainframes, networked clients,servers, media servers, application servers, database servers and webservers. Other examples of computer systems may include mobile computingdevices, such as cellular phones and personal digital assistants, andnetwork equipment, such as load balancers, routers and switches.Further, aspects may be located on a single computer system or may bedistributed among a plurality of computer systems connected to one ormore communications networks.

For example, various aspects and functions may be distributed among oneor more computer systems configured to provide a service to one or moreclient computers. Additionally, aspects may be performed on aclient-server or multi-tier system that includes components distributedamong one or more server systems that perform various functions.Consequently, examples are not limited to executing on any particularsystem or group of systems. Further, aspects may be implemented insoftware, hardware or firmware, or any combination thereof. Thus,aspects may be implemented within methods, acts, systems, systemelements and components using a variety of hardware and softwareconfigurations, and examples are not limited to any particulardistributed architecture, network, or communication protocol.

As shown, the computer devices 110, 120, and 130 are interconnected by,and may exchange data through, communication a network 190. The network190 may include any communication network through which computer systemsmay exchange data. To exchange data using the network 190, the computersystems 110, 120, and 130 and the network 190 may use various methods,protocols and standards, including, among others, Fibre Channel, TokenRing, Ethernet, Wireless Ethernet, Bluetooth, IP, IPV6, TCP/IP, UDP,DTN, HTTP, FTP, SNMP, SMS, MMS, SS7, JSON, SOAP, CORBA, REST and WebServices. To ensure data transfer is secure, the computer systems 110,120, and 130 may transmit data via the network 190 using a variety ofsecurity measures including, for example, TSL, SSL or VPN.

As discussed above with regard to FIG. 1, various aspects and functionsmay be implemented as specialized hardware or software executing in oneor more computer systems. As illustrated in FIG. 1, the device 120includes a processor 150, a memory 165, a camera 145, an output display155, a data storage module 167, and an input device 160. (The followingdetailed description of the components of mobile device 120, may begenerally understood to also apply to corresponding structure present incomputer 130 or server 110.)

The processor 150 may perform a series of instructions that result inmanipulated data. The processor 150 may be a commercially availableprocessor such as an Intel Xeon, Itanium, Core, Celeron, Pentium, AMDOpteron, Sun UltraSPARC, IBM Power5+, or IBM mainframe chip, but may beany type of processor, multiprocessor or controller. The processor 150is connected to other system elements, including one or more memorydevices 165, the camera 145, etc.

The memory 165 may be used for storing programs and data duringoperation of the device 120. Thus, the memory 165 may be a relativelyhigh performance, volatile, random access memory such as a dynamicrandom access memory (DRAM) or static memory (SRAM). However, the memory165 may include any device for storing data, such as a disk drive orother non-volatile storage device. Various examples may organize thememory 165 into particularized and, in some cases, unique structures toperform the functions disclosed herein.

The mobile device 120 also includes one or more interface devices suchas input devices 160 and output devices 155. Interface devices mayreceive input or provide output. More particularly, output devices mayrender information for external presentation. Input devices may acceptinformation from external sources. Examples of interface devices includekeyboards, mouse devices, trackballs, microphones, touch screens,printing devices, display screens, speakers, network interface cards,etc. Interface devices allow the computer system 120 to exchangeinformation and communicate with external entities, such as users andother systems.

The data storage 167 may include a computer readable and writeablenonvolatile (non-transitory) data storage medium in which instructionsare stored that define a program that may be executed by the processor150. The data storage 167 also may include information that is recorded,on or in, the medium, and this information may be processed by theprocessor 150 during execution of the program. More specifically, theinformation may be stored in one or more data structures specificallyconfigured to conserve storage space or increase data exchangeperformance. The instructions may be persistently stored as encodedsignals, and the instructions may cause the processor 150 to perform anyof the functions described herein. The medium may, for example, beoptical disk, magnetic disk or flash memory, among others. In operation,the processor 150 or some other controller may cause data to be readfrom the nonvolatile recording medium into another memory, such as thememory 165, that allows for faster access to the information by theprocessor 150 than does the storage medium included in the data storage167. The memory may be located in the data storage 167 or in the memory165, however, the processor 150 may manipulate the data within thememory 165, and then copy the data to the storage medium associated withthe data storage 167 after processing is completed. A variety ofcomponents may manage data movement between the storage medium and othermemory elements and examples are not limited to particular datamanagement components. Further, examples are not limited to a particularmemory system or data storage system.

Although the device 120 is shown by way of example as one type of acomputer device upon which various aspects and functions may bepracticed, aspects are not limited to being implemented on the device120 as shown in FIG. 1. Various aspects and functions may be practicedon one or more computers having a different architectures or componentsthan that shown in FIG. 1. For instance, the device 120 may includespecially programmed, special-purpose hardware, such as for example, anapplication-specific integrated circuit (ASIC) tailored to perform aparticular operation disclosed herein. While another example may performthe same function using a grid of several general-purpose computingdevices running MAC OS System X with Motorola PowerPC processors andseveral specialized computing devices running proprietary hardware andoperating systems.

The device 120 may include an operating system that manages at least aportion of the hardware elements included in the device 120. Usually, aprocessor or controller, such as the processor 150, executes anoperating system which may be, for example, a Windows-based operatingsystem, such as, Windows NT, Windows 2000 (Windows ME), Windows XP,Windows Vista or Windows 7 operating systems, available from theMicrosoft Corporation, a MAC OS System X operating system available fromApple Computer, one of many Linux-based operating system distributions,for example, the Enterprise Linux operating system available from RedHat Inc., a Solaris operating system available from Sun Microsystems, ora UNIX operating systems available from various sources. Many otheroperating systems may be used, and examples are not limited to anyparticular implementation.

The processor 150 and operating system together define a computerplatform for which application programs in high-level programminglanguages may be written. These component applications may beexecutable, intermediate, bytecode or interpreted code whichcommunicates over a communication network, for example, the Internet,using a communication protocol, for example, TCP/IP. Similarly, aspectsmay be implemented using an object-oriented programming language, suchas .Net, SmallTalk, Java, C++, Ada, or C# (C-Sharp). Otherobject-oriented programming languages may also be used. Alternatively,functional, scripting, or logical programming languages may be used.

Additionally, various aspects and functions may be implemented in anon-programmed environment, for example, documents created in HTML, XMLor other format that, when viewed in a window of a browser program,render aspects of a graphical-user interface or perform other functions.Further, various examples may be implemented as programmed ornon-programmed elements, or any combination thereof. For example, a webpage may be implemented using HTML while a data object called fromwithin the web page may be written in C++. Thus, the examples are notlimited to a specific programming language and any suitable programminglanguage could be used. Thus, functional components disclosed herein mayinclude a wide variety of elements, e.g. executable code, datastructures or objects, configured to perform described functions.

Embodiments described above utilize a process for displaying objects ona screen at a desired visual angle in conjunction with the performanceof an eye exam. Other embodiments may be used to object display size fora number of different applications including: gaming, educationalsoftware, training software, media display, etc. Having thus describedseveral aspects of at least one example, it is to be appreciated thatvarious alterations, modifications, and improvements will readily occurto those skilled in the art. For instance, examples disclosed herein mayalso be used in other contexts. Such alterations, modifications, andimprovements are intended to be part of this disclosure, and areintended to be within the scope of the examples discussed herein.Accordingly, the foregoing description and drawings are by way ofexample only.

The invention claimed is:
 1. A process for conducting a vision test, theprocess comprising: obtaining an image of a screen using a camera of amobile device; determining a camera pixel length of the screen in theimage, the camera pixel length of the screen being associated with alength of the screen in camera pixels; determining a desired screenpixel dimension of an object to be displayed on the screen to produce adesired visual angle for the object; and causing the object to bedisplayed on the screen at the desired visual angle.
 2. The process ofclaim 1, wherein the object is an optotype, further comprising receivingan indication from a test subject in response to the optotype.
 3. Theprocess of claim 2, further comprising determining at least onecharacteristic of the test subject's vision based at least in part onthe received indication.
 4. The process of claim 3, wherein the at leastone characteristic is at least one of a diagnosis and a lensprescription for the test subject.
 5. The process of claim 2, furthercomprising transmitting from the mobile device to a server theindication from the test subject in response to the optotype.
 6. Theprocess of claim 1, wherein obtaining the image of the screen occurs atan arbitrary distance from the screen.
 7. The process of claim 1,further comprising pairing the mobile device with a computer associatedwith the screen.
 8. The process of claim 7, further comprisingtransmitting data from the mobile device to a server, the datarepresenting at least one characteristic of the camera of the mobiledevice and at least one characteristic of the image of the screen of thecomputer.
 9. The process of claim 1, wherein the at least onecharacteristic of the image of the screen of the computer includes afirst camera pixel dimension of the image and a second camera pixeldimension of the screen within the image.